<!DOCTYPE html>
<html lang="en">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>demo</title>

</head>
<body>
<div id="pn">
    <div id="list0">
        <p class="title">-1</p>
        <p class="time">0</p>
        <p class="zy"><a class="show" href="#">展开全文</a></p>
        <div class="content">222222222222
            <a href="#" class="hidd">收起全文</a>
        </div>
    </div>

</div>
<script type="text/javascript">
    //在页面加载完后立即执行多个函数方案。
    function addloadEvent(func){
        var oldonload=window.onload;
        if(typeof window.onload !="function"){
            window.onload=func;
        }
        else{
            window.onload=function(){
                if(oldonload){
                    oldonload();
                }
                func();
            }
        }
    }
    addloadEvent(b);
    //在页面加载完后立即执行多个函数方案结束。
    //获取同级所有元素开始
    function siblings(elm) {
        var a = [];
        var p = elm.parentNode.children;
        for(var i =0,pl= p.length;i<pl;i++){
            if(p[i] !== elm) a.push(p[i]);
        }
        return a;
    }
    //获取同级所有元素结束
    function b(){
        //获取查看全文的a标签
        var show=document.getElementsByClassName("show");
        //遍历a
        for(var i=0;i<show.length;i++){
            show[i].onclick=function(){
                //找到a的父级
                var father=this.parentNode;
                //设置隐藏
                father.style.display="none";
                //找到父级的下一个节点
                var next=father.nextSibling;
                //判断下一个节点的数据类型，如果不是1（元素节点），那就接着往下找
                if(next.nodeType!=1){
                    next=next.nextSibling;
                }
                //正文显示
                next.style.display="block";
                //获取整个list0
                var ff=this.parentNode.parentNode;
                //获取除去list0的所有同级元素
                var bro=siblings(ff);
                for(var y=0;y<bro.length;y++){
                    //获取每个list0里的第一个content类名
                    var w=bro[y].getElementsByClassName("content")[0];
                    //获取content类名的前一个节点
                    var wt=w.previousSibling;
                    //判断前一个节点的数据类型，如果不是1（元素节点），那就接着往上找
                    if(wt.nodeType!=1){
                        wt=wt.previousSibling;
                    }
                    //同级摘要部分显示
                    wt.style.display="block";
                    //同级全文部分隐藏
                    w.style.display="none";
                }
            }
        }
        //下面就是点击收回全文的部分与展开原理一样
        var hidd=document.getElementsByClassName("hidd");
        for(var i=0;i<hidd.length;i++){
            hidd[i].onclick=function(){
                var fafa=this.parentNode;
                fafa.style.display="none";
                var pre=fafa.previousSibling;
                if(pre.nodeType!=1){
                    pre=pre.previousSibling;
                }
                pre.style.display="block";
            }
        }
    }
</script>
</body>
</html>